## Directory Structure

### Overview

![SoLoud directory structure](images/dirstruct)\ 

Some directories have been omitted from the overview graph to make it more manageable.

Note that documentation is not included in the SoLoud distribution, and is available separately in various formats.

Directory Description
----      ------------
scripts   Scripts used to automate wrapper code generation. Unless you're adding features to SoLoud, you won't need to touch them.
include   All of the include files are kept in this single directory.
bin       Pre-built binaries of the SoLoud demos for windows.
glue      All the glue libraries for various environments, like rpgmaker, c#, python, d, ruby, etc.
build     The GENie / premake script that can be used to generate build scripts for various IDEs or a gnu makefile.
demos     SoLoud's demos showing how to use SoLoud's various features.
src       Source code for SoLoud itself
contrib   Additional files that are not maintained by SoLoud project itself, such as cmakefiles, but may be useful to some people.


### src

Directory       Description
----            ------------
src/audiosource SoLoud's audio sources, such as speech, wav, etc.
src/backend     Back-end interfaces, such as sdl, alsa, wasapi, etc.
src/c_api       The generated c-api code, which is used to create the SoLoud DLL, can be found here.
src/core        SoLoud's core source files.
src/filter      SoLoud's filters, such as lo-fi, biquad resonant filter, etc.
src/tools       Some command-line tools under the src/tools directory. Most of these are for SoLoud development.

### demos

Most of the demos are based on SDL2 and use some common code based on Ocornut's Dear ImGui library. This is to make the source for the demo itself mostly about SoLoud 
and not about putting pixels on the screen, while having an easy to use UI for the demos.

Directory        Description
----             ------------
demos/android    Demo for Android operating system.
demos/c_test     Test for the c-api.
demos/common     Common code for graphical demos.
demos/emscripten Scripts for compiling for web browsers with Emscripten
demos/enumerate  Enumerate all backends, show information.
demos/env        Environmental audio demo.
demos/glue       Some tiny examples for different foreign interfaces (cs, rpgmaker, etc).
demos/megademo   Compilation of many smaller demos showing off various features.
demos/null       Null driver example (using SoLoud without audio output).
demos/piano      Simple musical instrument using SoLoud.
demos/simplest   Simplest example.
demos/welcome    Slightly more complex example than simplest.

